package com.tyqx.hashchainbiz.service;

import com.tyqx.hashchainbean.module.HashIndex;
import com.tyqx.hashchainbean.module.JZTLogistics;
import com.tyqx.hashchainbean.vo.JZTLogisticsAndGS1VO;
import com.tyqx.hashchainbean.vo.JZTLogisticsDataVO;
import com.tyqx.hashchainbean.vo.JZTLogisticsVO;
import com.tyqx.hashchaindao.mapper.JZTLogisticsMapper;
import org.apache.ibatis.annotations.Param;

import javax.annotation.Resource;
import java.util.List;
import java.util.concurrent.Future;

public interface JZTLogisticsService {

    public Future<String> addJZTLogistics(JZTLogistics jztLogistics)throws Exception;

    public List<JZTLogisticsVO> getJZTLogisticsByTraceabilityCode(List<String> traceabilityCodes);

    public List<JZTLogisticsAndGS1VO> getJZTLogisticsAndGS1ByTraceabilityCode(List<String> traceabilityCodes);

    public List<JZTLogisticsVO> grantGetJZTLogisticsByTraceabilityCode(List<String> traceabilityCodes,String userName);

    public List<JZTLogisticsAndGS1VO> grantGetJZTLogisticsAndGS1ByTraceabilityCode(List<String> traceabilityCodes,String userName);

    public List<JZTLogisticsVO> getJZTLogisticsByCode(String traceabilityCode);

    public Future<String> batchAddJZTLogistics(List<JZTLogistics> jztLogisticsList) throws Exception;

    public Integer recordJZTLogistics(String hashValue, HashIndex hashIndex,JZTLogistics jztLogistics) throws Exception;

    public Integer recordJZTLogisticsBatch(List<String> hashValueList, List<HashIndex> hashIndexList,List<JZTLogistics> jztLogisticsList) throws Exception;


    public List<JZTLogisticsDataVO> selectAll();

    public Integer insertBatch(List<JZTLogistics> jztLogisticsList);


}
